package com.ruoyi.system.service;

import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.system.domain.bo.POrderBo;
import com.ruoyi.system.domain.bo.PUserBillBo;
import com.ruoyi.system.domain.bo.UserRechargeRequest;
import com.ruoyi.system.domain.vo.PUserBillVo;
import com.ruoyi.system.domain.vo.WalletVO;

import java.util.Collection;
import java.util.List;

/**
 * 账单Service接口
 *
 * @author ruoyi
 * @date 2022-07-26
 */
public interface IPUserBillService {

    /**
     * 查询账单
     */
    PUserBillVo queryById(Long id);

    /**
     * 查询账单列表
     */
    TableDataInfo<PUserBillVo> queryPageList(PUserBillBo bo, PageQuery pageQuery);

    /**
     * 查询账单列表
     */
    List<PUserBillVo> queryList(PUserBillBo bo);

    /**
     * 修改账单
     */
    Boolean insertByBo(PUserBillBo bo);

    /**
     * 修改账单
     */
    Boolean updateByBo(PUserBillBo bo);

    /**
     * 校验并批量删除账单信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 前端-用户充值
     */
    void chargeMoney(UserRechargeRequest rechargeRequest);

    /**
     * 我的钱包
     * @param end
     * @param pageQuery
     * @return
     */
    WalletVO myWallet(String end, PageQuery pageQuery);

    /**
     * 余额充值
     */
    void insertTestFontByBo(POrderBo bo);
}
